home *** CD-ROM | disk | FTP | other *** search
/ CICA 1993 April / CICA MS Windows - April 1993.iso / unzipped / games / yowsrc12 / windows.mk < prev    next >
Text File  |  1992-03-14  |  6KB  |  285 lines

  1. ##
  2. ## WINDOWS.MK - nmake file general includes for windows development
  3. ##
  4. ## Version: 1.2 Copyright (C) 1990-92 Hutchins Software
  5. ## Author: Edward Hutchins
  6. ##
  7. ## Revisions:
  8. ## 10/10/90 added Zortech C++ support (sort of) - Ed.
  9. ## 02/24/91 added DLLEXT for other than DLL extensions - Ed.
  10. ## 02/28/91 added variable drive backups, and executeable backups - Ed.
  11. ## 03/13/91 added help compiler support (HELP = 1) - Ed.
  12. ## 06/01/91 raised segment limit to 200 for mondo links - Ed.
  13. ## 09/28/91 added /DDEBUG to debug compile comand line - Ed.
  14. ## 10/02/91 added recursive directory archive commands - Ed.
  15. ##
  16.  
  17. ##
  18. ## include system specific path macros (only hardcoded path in system)
  19. ##
  20.  
  21. !include "c:\batch\machine.mk"
  22.  
  23. ##
  24. ## make macros (no pun intended)
  25. ##
  26.  
  27. # allow sloppy defines for DEBUG, DLL and DLLEXT
  28. !IFNDEF DEBUG
  29. DEBUG = 0
  30. !ENDIF
  31.  
  32. !IFNDEF DLL
  33. DLL = 0
  34. !ENDIF
  35.  
  36. !IFNDEF DLLEXT
  37. DLLEXT = DLL
  38. !ENDIF
  39.  
  40. !IFNDEF HELP
  41. HELP = 0
  42. !ENDIF
  43.  
  44. #command names
  45. AS = masm
  46. HC = hc
  47. RC = rc -V
  48. MSC = cl
  49. ZTC = ztc
  50. LINKER = link
  51. IMPLIB = implib
  52. MAPSYM = mapsym
  53. CD = cd
  54. CP = copy
  55. XCP = xcopy >nul
  56. RM = del >nul
  57. MD = md >nul
  58. LRF = echo >nul
  59. SHOW = when -e
  60. #AUDIT = when -fc:\batch\log.txt
  61. ARC = pkzip -m -r -p -x*.mk
  62. UNARC = pkunzip -o -d
  63. ARC_EXT = ZIP
  64.  
  65. ##
  66. ## compile flags
  67. ##
  68.  
  69. ZTCFLAGS_G = -a -br -c -W -R
  70. ZTCFLAGS_D = -s -g
  71. ZTCFLAGS_R = -o
  72. !IF $(DLL)
  73. ZTCFLAGS_MDL = -mmw
  74. !ELSE
  75. ZTCFLAGS_MDL = -mm
  76. !ENDIF
  77.  
  78. MSCFLAGS_G = /c /W3 /G2ws /FPi /Zp /BATCH /nologo
  79. MSCFLAGS_D = /Zi /Od /DDEBUG
  80. MSCFLAGS_R = /Opwilt
  81. !IF $(DLL)
  82. MSCFLAGS_MDL = /AMw
  83. !ELSE
  84. MSCFLAGS_MDL = /AM
  85. !ENDIF
  86.  
  87. #other flags
  88. AFLAGS_G = /i$(ASM_INCL) /Mx /T
  89. AFLAGS_D = /Z
  90.  
  91. LFLAGS_G = /NOE /NOD /BATCH /ALIGN:16 /SEGMENT:200
  92. LFLAGS_D = /CO /M /NOF /NOP /MAP /LI
  93. LFLAGS_R = /NOF /NOP
  94.  
  95. # working files
  96. DEF_FILE = $(PROJ).def
  97. LNK_FILE = $(TEMP)\$(PROJ).lnk
  98. ARC_FILE = $(PROJ)
  99. MAPFILE_D = $(TEMP)\$(PROJ).map
  100. MAPFILE_R = NUL
  101.  
  102. ##
  103. ## set up for library or exe compile
  104. ##
  105.  
  106. !IF $(DLL)
  107.  
  108. PROJECT = $(PROJ).$(DLLEXT)
  109. !IF $(HELP)
  110. TARGET = $(DEST)\$(PROJECT) $(PROJ).lib $(DEST)\$(PROJ).hlp
  111. !ELSE
  112. TARGET = $(DEST)\$(PROJECT) $(PROJ).lib
  113. !ENDIF
  114. LLIBS_G = mdllcew mwinlibc libw
  115.  
  116. !ELSE
  117.  
  118. PROJECT = $(PROJ).exe
  119. !IF $(HELP)
  120. TARGET = $(DEST)\$(PROJECT) $(DEST)\$(PROJ).hlp
  121. !ELSE
  122. TARGET = $(DEST)\$(PROJECT)
  123. !ENDIF
  124. LLIBS_G = mlibcew libw
  125.  
  126. !ENDIF
  127.  
  128. ##
  129. ## start of dependency list
  130. ##
  131.  
  132. all: logo $(TARGET)
  133.     $(DONE_CMD)
  134.  
  135. .SUFFIXES: .def .c .cpp .rc .lib .res .obj
  136.  
  137. $(DEST)\$(PROJECT) : $(DEF_FILE) $(OBJS) $(RESS)
  138. !IF $(DEBUG)
  139.     $(LRF) @<<$(LNK_FILE)
  140. $(OBJS: = +^
  141. )
  142. $(TEMP)\$(PROJECT)
  143. $(MAPFILE_D)
  144. $(LLIBS_G: = +^
  145. ) +
  146. $(LIBS: = +^
  147. )
  148. $(DEF_FILE) $(LFLAGS_G) $(LFLAGS_D);
  149. <<
  150. !ELSE
  151.     $(LRF) @<<$(LNK_FILE)
  152. $(OBJS: = +^
  153. )
  154. $(TEMP)\$(PROJECT)
  155. $(MAPFILE_R)
  156. $(LLIBS_G: = +^
  157. ) +
  158. $(LIBS: = +^
  159. )
  160. $(DEF_FILE) $(LFLAGS_G) $(LFLAGS_R);
  161. <<
  162. !ENDIF
  163.     $(LINKER) @$(LNK_FILE)
  164.     $(TEMP_DRV):
  165.     $(CD) $(TEMP)
  166. ##!IF $(DEBUG)
  167. ##    $(MAPSYM) /l $(PROJ)
  168. ##    $(CP) $(PROJ).sym $(SYM)
  169. ##!ENDIF
  170.     $(CP) $(ROOT)\$(PROJ)\*.res
  171.     $(RC) $(RESS) $(PROJECT)
  172.     $(CP) $(PROJECT) $(DEST)
  173.     -@ $(RM) $(PROJ).*
  174.     $(ROOT_DRV):
  175.     $(CD) $(ROOT)\$(PROJ)
  176.  
  177. $(DEST)\$(PROJ).hlp : $(PROJ).hpj *.rtf
  178.     $(HC) $(PROJ).hpj
  179.     $(CP) $(PROJ).hlp $(DEST)\$(PROJ).hlp
  180.     -@ $(RM) $(PROJ).hlp
  181.  
  182. logo :
  183.     $(SHOW) █▓▒░ making $(PROJ) ░▒▓█
  184.  
  185. clean :
  186.     $(ROOT_DRV):
  187.     $(CD) $(ROOT)\$(PROJ)
  188.     -@ $(RM) *.obj
  189.     -@ $(RM) *.res
  190.     -@ $(RM) *.lib
  191.  
  192. backup :
  193.     $(ROOT_DRV):
  194.     $(CD) $(ROOT)\$(PROJ)
  195.     -@ $(MD) $(BACK_DRV):\$(PROJ)
  196.     -@ $(XCP) *.* $(BACK_DRV):\$(PROJ) /S /E
  197. !IFDEF HEAD
  198.     -@ $(MD) $(BACK_DRV):\include
  199.     $(CP) $(GLOBALS)\$(HEAD) $(BACK_DRV):\include
  200. !ENDIF
  201. !IFDEF FULL
  202.     -@ $(MD) $(BACK_DRV):\bin
  203.     $(CP) $(DEST)\$(PROJECT) $(BACK_DRV):\bin
  204. !ENDIF
  205. !IF $(DLL)
  206.     -@ $(MD) $(BACK_DRV):\lib
  207.     $(CP) $(LIB)\$(PROJ).lib $(BACK_DRV):\lib
  208. !ENDIF
  209.  
  210. restore :
  211.     $(ROOT_DRV):
  212.     $(CD) $(ROOT)\$(PROJ)
  213.     -@ $(XCP) $(BACK_DRV):\$(PROJ)\*.* /S /E
  214. !IFDEF HEAD
  215.     $(CP) $(BACK_DRV):\include\$(HEAD) $(GLOBALS)\$(HEAD)
  216. !ENDIF
  217. !IFDEF FULL
  218.     $(CP) $(BACK_DRV):\bin\$(PROJECT) $(DEST)\$(PROJECT)
  219. !ENDIF
  220. !IF $(DLL)
  221.     $(CP) $(BACK_DRV):\lib\$(PROJ).lib $(LIB)\$(PROJ).lib
  222. !ENDIF
  223.  
  224. arc :
  225.     $(ROOT_DRV):
  226.     $(CD) $(ROOT)\$(PROJ)
  227.     $(ARC) $(ARC_FILE)
  228.  
  229. unarc :
  230.     $(ROOT_DRV):
  231.     $(CD) $(ROOT)\$(PROJ)
  232.     $(UNARC) $(ARC_FILE)
  233.     -@ $(RM) $(ARC_FILE).$(ARC_EXT)
  234.  
  235. help :
  236.     @ echo > aux: ╔═════════════════════════════════════════════════════════════╗
  237.     @ echo > aux: ║ WINDOWS.MK Version: 1.1 Copyright (C) 1990-92 Hutchins Soft ║
  238.     @ echo > aux: ╟─────────────────────────────────────────────────────────────╢
  239.     @ echo > aux: ║               Help on windows make arguments:               ║
  240.     @ echo > aux: ╚═════════════════════════════════════════════════════════════╝
  241.     @ echo > aux: {no cmd}, all - build «$(TARGET)»
  242.     @ echo > aux: clean         - remove intermediate files
  243.     @ echo > aux: backup        - copy files to disk $(BACK_DRV):
  244.     @ echo > aux: restore       - restore files from disk $(BACK_DRV):
  245.     @ echo > aux: arc           - move «$(PROJ)» into $(ARC_FILE).$(ARC_EXT)
  246.     @ echo > aux: unarc         - expand $(ARC_FILE).$(ARC_EXT) into «$(PROJ)»
  247.  
  248. ##
  249. ## default inferencing rules
  250. ##
  251.  
  252. .def.lib :
  253.     $(SHOW) $<
  254.     $(IMPLIB) $@ $<
  255.     $(CP) $@ $(LIB)\$(PROJ).lib
  256.     -@ $(RM) $@
  257.  
  258. .rc.res :
  259.     $(SHOW) $<
  260.     $(RC) /r $<
  261.  
  262. .c.obj :
  263.     $(SHOW) $<
  264. !IF $(DEBUG)
  265.     $(MSC) $(MSCFLAGS_G) $(MSCFLAGS_MDL) $(MSCFLAGS_D) /Fo$@ /NT $* $<
  266. !ELSE
  267.     $(MSC) $(MSCFLAGS_G) $(MSCFLAGS_MDL) $(MSCFLAGS_R) /Fo$@ /NT $* $<
  268. !ENDIF
  269.  
  270. .cpp.obj :
  271.     $(SHOW) $<
  272. !IF $(DEBUG)
  273.     $(ZTC) $(ZTCFLAGS_G) $(ZTCFLAGS_MDL) $(ZTCFLAGS_D) -o$@ $<
  274. !ELSE
  275.     $(ZTC) $(ZTCFLAGS_G) $(ZTCFLAGS_MDL) $(ZTCFLAGS_R) -o$@ $<
  276. !ENDIF
  277.  
  278. .asm.obj :
  279.     $(SHOW) $<
  280. !IF $(DEBUG)
  281.     $(AS) $(AFLAGS_G) $(AFLAGS_D) $<;
  282. !ELSE
  283.     $(AS) $(AFLAGS_G) $<;
  284. !ENDIF
  285.